Mutual authentication with pseudo random numbers

ABSTRACT

A verifier device of an authentication system comprises physical layer circuitry and processing circuitry coupled to the physical layer circuitry. The processing circuitry is configured to encode an authentication command for sending to a credential device; decode a response communication received from the credential device, wherein the response communication includes a first random number; encrypt the first random number, a second random number, and verifier keying material for sending to the credential device; decrypt encrypted information received from the credential device, wherein the encrypted information includes the first random number, the second random number, and receiver keying material; and calculate a session encryption key using the verifier keying material and the receiver keying material.

TECHNICAL FIELD

Embodiments illustrated and described herein generally relate to automatic identity authentication systems that authenticate users for access to secure resources, and to techniques of secure messaging for identity authentication systems.

BACKGROUND

There are many applications for which quick and accurate authentication of identity of a person is desirable. Some examples include airline travel and secure access to controlled areas. Additionally, remote identity authentication for applications such as mobile online shopping or mobile banking is now a common practice. Device authentication can involve authentication information being exchanged between a server performing authentication and a credential device such as a smart card or a mobile phone. Secure messaging is used to enable transfer of sensitive information used in the authentication process.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an example of portions of an authentication system.

FIG. 2 is a flow diagram of an example of a method of device authentication.

FIG. 3 is a block diagram illustrating an example of portions of a communication session for device authentication.

FIG. 4 is a block diagram schematic of portions of an example of a verifier device.

DETAILED DESCRIPTION

It is desirable for automatic authentication of a person's identity based on verifiable identity information to be fast and secure. Authentication may involve messaging to send sensitive identification information between a verifier device (e.g., a system server of an authentication system backend) and credential device (e.g., a smartcard or smartphone). FIG. 1 is an illustration of an example of a verifier device 105 and a credential device 110 that communicate using secure messaging. In the example, the verifier device 105 is a system server of an authentication system backend and the credential device 110 is a smartphone, but the verifier device and the credential device can be any two devices that use secure messaging. The credential device may store an access credential that provides controlled access to a resource such as a financial resource or a secured physical space. Authentication messaging is used to verify that the access credential provides the desired access. The authentication messaging can be made secure using one or more session keys 115 to encrypt the messages of a communication session between the devices. The keys can be shared according to a communication protocol.

To make the authentication automatic between the devices, the messaging that includes the key exchange can be scripted. The scripting can include a verifier device initiating a transaction to exchange keys. To make the key transaction scriptable, key information should be predictable.

FIG. 2 is a flow diagram of a method of device authentication between an initiator device that initiates the authentication and a receiver device. The method 200 may provide mutual authentication using secret messaging that is scriptable. The initiator device may be a verifier device and the receiver device may be a credential device. Alternatively, the credential device may be the initiator device, and the verifier device is the receiver device. At block 205, an authentication command is sent to the receiver device from the initiator device to trigger the authentication for secure messaging between the devices.

At block 210, a first random number R_(B) is generated by the receiver device and transmitted from the receiver device to the initiator device. At block 215, the receiver device also determines receiver device keying information, or receiver device keying material, F_(B). The keying material is calculated using the random number R_(B) and a static encryption key KENC, or

F_(B) = KDF(K_(ENC), R_(B)), where KDF is the key derivation function performed using processing circuitry of the receiver device. One or more keys are generated using F_(B). In some examples, the random number R_(B) is a true random number, and the static encryption key KENc can be a device specific encryption key stored in the receiver device and the initiator device. The KDF binds the keying material F_(B) to a specific context of the communication session. The context may be, among other things, an application, a key identifier, a session ID, etc.

To make the secure messaging scriptable, the receiver keying material F_(B) is a predictable random number that can be determined by the initiator device. In response to receiving the communication that includes the random number R_(B), the initiator device determines, the receiver keying material F_(B), a second random number R_(A) and initiator device keying material F_(A). The initiator device keying material F_(A) can be a random number. At block 220, the initiator device transmits random number R_(B), random number R_(A), and the initiator device keying material F_(A) to the receiver device.

FIG. 3 is a block diagram illustrating an example of portions of a communication session between the initiator device (device A) and a receiver device (device B). The communication session may include a protocol for mutual authentication between the initiator device and the receiver device. The example of FIG. 3 shows the receiver device transmitting a message 305 that includes random number R_(B). In response to receiving random number R_(B), the initiator device transmits R_(B) back to the initiator device in message 310 along with a second random number R_(A), and initiator device keying information F_(A). Sending R_(B) back to the receiver device shows authenticity of the initiator's communication. The values of R_(B), R_(A) and F_(A) may be included in an encrypted concatenation of a session identifier (SID), R_(A), R_(B), key identifier (I_(B)), F_(A), and Text. Including the key identifier I_(B) and the Text in the encrypted information is optional. The Text may include known information that can be checked by the initiator device. The encrypted information is decrypted by processing circuitry of the receiver device.

Returning to FIG. 2 , at block 225, the receiver device transmits random number R_(B), random number R_(A), and the receiver device key information F_(B) to the initiator device. In the example of FIG. 3 , initiator device transmits R_(B), R_(A), and F_(B) in an encrypted message 315 that includes an encrypted concatenation of a SID, R_(B), R_(A), F_(B), and optional Text. Because both random numbers are exchanged multiple times between the two devices keying material F_(A) and F_(B) is used for key creation. Exchanging the keying material F_(A) and F_(B) separately also provides additional security. After communication 315 in FIG. 3 , both the receiver device and the initiator device have the keying material F_(A) and F_(B). The devices each calculate an encryption key (e.g., a session encryption key) using key information F_(A) and F_(B).

In one example, the session key (K_(SESSION)) is calculated as

K_(SESSION) = KDF(K_(STATIC), F_(A)F_(B)), where K_(STATIC) is a static device key and F_(A)∥F_(B) is the concatenation of the key information or key material. Other combinations of F_(A) and F_(B) can be used to calculate the session key. Because both devices use the same key material to calculate the encryption key, the calculated encryption key matches in both devices.

At block 230 in FIG. 2 , when the mutual authentication by the devices is completed, encrypted information is exchanged between the devices. The information is encrypted by the processing circuitry of the devices using the calculated encryption key (e.g., K_(SESSION)).

As explained previously herein, the random number R_(B) used to create a scriptable session encryption key may be a true random number. Optionally, the random number R_(B) can be based on a counter, such as a pseudo random counter with

R_(B) = PRF(counter), where PRF is a pseudo random function that generates a pseudo random number using the value of the counter as a seed. The R_(B) determined using the counter should be bound to a context of the communication session. It should be noted that the value of the counter itself is not transmitted. This may avoid disclosing that there is a key and that the key is calculated using a pseudo random number instead of a real random number.

Using a random number based on a counter provides the advantage that the random number cannot have the same value twice. A disadvantage is that the counter needs to be updated. This can lead to stressing of the non-volatile memory of the receiver device. The counter may be updated after every communication session. In variations, the counter is updated after the first exchange of information of an authentication session (e.g., after the first communication of random number R_(B)). The counter should not be allowed to overflow to avoid using the same counter a second time. If the counter is allowed to overflow, in the event of overflow the static key and the counter should be updated before they are used again.

The systems, devices, and methods described herein provide communication of encryption keys according to a scriptable transaction for secure messaging between two devices. The scriptable communication provides encryption keys based on random numbers. The random numbers can be true random numbers or based on a counter. The value of the counter does not need to be transmitted which can improve security and privacy protection. Additionally, writes to non-volatile memory to are reduced by eliminating the need to store a counter value.

FIG. 4 is a block diagram schematic of various example components of a device 400 (e.g., an embedded device) for supporting the device architectures described and illustrated herein. The device 400 of FIG. 4 could be, for example, a verifier device (or other initiator device) that authenticates credential information of authority, status, rights, and/or entitlement to privileges for the holder of a credential device. The verifier device may be a server of the backend of an authentication system. In variations, the verifier device may be a reader device of a physical access control system (PACS). A reader device of a PACS retrieves and authenticates an access credential when a credential device is used and sends the access credential to an access controller. The access controller compares the access credential to an access control list and grants or denies access based on the comparison, such as by controlling an automatic lock on a door for example. In variations, the reader device performs the functions of the access controller.

With reference specifically to FIG. 4 , additional examples of a device 400 for supporting the device architecture described and illustrated herein may generally include one or more of a memory 402, processing circuitry such as processor 404, one or more antennas 406, a communication port or communication module 408, a network interface device 410, a user interface 412, and a power source 414 or power supply.

Memory 402 can be used in connection with the execution of application programming or instructions by processing circuitry, and for the temporary or long-term storage of program instructions or instruction sets 416 and/or authorization data 418, such as credential data, credential authorization data, or access control data or instructions, as well as any data, data structures, and/or computer-executable instructions needed or desired to support the above-described device architecture. For example, memory 402 can contain executable instructions 416 that are used by a processor 404 of the processing circuitry to run other components of device 400, to calculate encryption keys to communicate credential or authorization data 418, and/or to perform any of the functions or operations described herein, such as the method of FIG. 2 for example. Memory 402 can comprise a computer readable medium that can be any medium that can contain, store, communicate, or transport data, program code, or instructions for use by or in connection with device 400. The computer readable medium can be, for example but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples of suitable computer readable medium include, but are not limited to, an electrical connection having one or more wires or a tangible storage medium such as a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), Dynamic RAM (DRAM), any solid-state storage device, in general, a compact disc read-only memory (CD-ROM), or other optical or magnetic storage device. Computer-readable media includes, but is not to be confused with, computer-readable storage medium, which is intended to cover all physical, non-transitory, or similar embodiments of computer-readable media.

The processing circuitry of the device 400 is configured (e.g., by firmware) to perform the functions of verifier devices described herein. Such as the functions of the example method of FIG. 2 . The processing circuitry can correspond to one or more computer processing devices or resources. For instance, processor 404 can be provided as silicon, as a Field Programmable Gate Array (FPGA), an Application-Specific Integrated Circuit (ASIC), any other type of Integrated Circuit (IC) chip, a collection of IC chips, or the like. As a more specific example, processor 404 can be provided as a microprocessor, Central Processing Unit (CPU), or plurality of microprocessors or CPUs that are configured to execute instructions sets stored in an internal memory 420 and/or memory 402.

Antenna 406 can correspond to one or multiple antennas and can be configured to provide for wireless communications between device 400 and another device. Antenna(s) 406 can be operatively coupled to physical layer circuitry comprising one or more physical (PHY) layers 424 to operate using one or more wireless communication protocols and operating frequencies including, but not limited to, the IEEE 802.15.1, Bluetooth, Bluetooth Low Energy (BLE), near field communications (NFC), ZigBee, GSM, CDMA, Wi-Fi, RF, UWB, and the like. In an example, antenna 406 may include one or more antennas coupled to one or more physical layers 424 to operate using ultra-wide band (UWB) for in band activity/communication and Bluetooth (e.g., BLE) for out-of-band (OOB) activity/communication. However, any RFID or personal area network (PAN) technologies, such as the IEEE 502.15.1, near field communications (NFC), ZigBee, GSM, CDMA, Wi-Fi, etc., may alternatively or additionally be used for the OOB activity/communication described herein.

Device 400 may additionally include a communication module 408 and/or network interface device 410. Communication module 408 can be configured to communicate according to any suitable communications protocol with one or more different systems or devices either remote or local to device 400. Network interface device 410 includes hardware to facilitate communications with other devices over a communication network utilizing any one of a number of transfer protocols (e.g., frame relay, internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks can include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), mobile telephone networks (e.g., cellular networks), Plain Old Telephone (POTS) networks, wireless data networks (e.g., IEEE 802.11 family of standards known as Wi-Fi, IEEE 802.16 family of standards known as WiMax), IEEE 802.15.4 family of standards, and peer-to-peer (P2P) networks, among others. In some examples, network interface device 410 can include an Ethernet port or other physical jack, a Wi-Fi card, a Network Interface Card (NIC), a cellular interface (e.g., antenna, filters, and associated circuitry), or the like. In some examples, network interface device 410 can include a plurality of antennas to wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. In some example embodiments, one or more of the antenna 406, communication module 408, and/or network interface device 410 or subcomponents thereof, may be integrated as a single module or device, function or operate as if they were a single module or device, or may comprise of elements that are shared between them.

User interface 412 can include one or more input devices and/or display devices. Examples of suitable user input devices that can be included in user interface 412 include, without limitation, one or more buttons, a keyboard, a mouse, a touch-sensitive surface, a stylus, a camera, a microphone, etc. Examples of suitable user output devices that can be included in user interface 412 include, without limitation, one or more LEDs, an LCD panel, a display screen, a touchscreen, one or more lights, a speaker, etc. It should be appreciated that user interface 412 can also include a combined user input and user output device, such as a touch-sensitive display or the like. The user interface 412 may include a separate alarm circuit 426 to indicate an alarm condition such as a relay attack or other security breach. Alarm circuit 426 may provide an audio signal to a speaker or may activate a light or present an alarm condition using a display device.

Power source 414 can be any suitable internal power source, such as a battery, capacitive power source or similar type of charge-storage device, etc., and/or can include one or more power conversion circuits suitable to convert external power into suitable power (e.g., conversion of externally-supplied AC power into DC power) for components of the device 400.

Device 400 can also include one or more interlinks or buses 422 operable to transmit communications between the various hardware components of the device. A system bus 422 can be any of several types of commercially available bus structures or bus architectures.

ADDITIONAL DISCLOSURE AND EXAMPLES

Example 1 can include subject matter (such as a method of device authentication) comprising transmitting a first random number from a receiver device to an initiator device, determining by the receiver device first key information using the first random number, transmitting the first random number, a second random number, and second key information from the initiator device to the receiver device, transmitting the first random number, the second random number, and the first key information from the receiver device to the initiator device, and encrypting information communicated between the initiator device and the receiver device using an encryption key determined using the first key information and the second key information.

In Example 2, the subject matter of Example 1 optionally includes the first random number being a pseudo random number determined using a counter value and the first random number is bound to a specific context of communication between the initiator device and the receiver device.

In Example 3, the subject matter of Example 2, optionally includes updating the counter value for each communication session between the initiator device and the receiver device.

In Example 4, the subject matter of Example 2 optionally includes updating the counter value after the first random number is communicated between the receiver device and the initiator device.

In Example 5, the subject matter of one or any combination of Examples 1-4 optionally includes determining the first key information using a static key and the first random number.

In Example 6, the subject matter of one or any combination of Examples 1-5 optionally includes determining the encryption key using a static key stored in each of the initiator and the receiver devices, the first key information, and the second key information.

In Example 7, the subject matter of one or any combination of Examples 1-6 optionally includes using a verifier device as the initiator device and using a credential device as the receiver device.

In Example 8, the subject matter of one or any combination of Examples 1-6 optionally includes using a smartphone as the receiver device and using a server or an access control device as the initiator device.

In Example 9, the subject matter of one or any combination of Examples 1-6 optionally includes the receiver device being a smart card and the initiator device being a server or an access control device.

Example 10 can include subject matter (such as a verifier device of an authentication system) or can optionally be combined with one or any combination of Examples 1-9 to include such subject matter, comprising physical layer circuitry and processing circuitry operatively coupled to the physical layer circuitry. The processing circuitry is configured to encode an authentication command for sending to a credential device, decode a response communication received from the credential device, wherein the response communication includes a first random number, determine receiver device keying material using the first random number, encrypt the first random number, a second random number, and verifier device keying material for sending to the credential device, decrypt encrypted information received from the credential device, wherein the encrypted information includes the first random number, the second random number, and the receiver device keying material, and calculate a session encryption key using the verifier keying material and the receiver keying material.

In Example 11, the subject matter of Example 10 optionally includes processing circuitry configured to calculate the receiver device keying material using a static key and the first random number.

In Example 12, the subject matter of one or both of Examples 10 and 11 optionally includes processing circuitry configured to calculate the session key using a static key, the verifier device keying material, and the receiver device keying material.

In Example 13, the subject matter of one or any combination of Examples 10-12 optionally includes processing circuitry configured to calculate the first random number by applying a counter value to a pseudo random number function.

In Example 14, the subject matter of Example 13 optionally includes processing circuitry configured to change the counter value used to calculate the random number for each communication session with the credential device.

In Example 15, the subject matter of Example 13 optionally includes processing circuitry configured to change the counter value used to calculate the first random number after an exchange of information with the credential device.

Example 16 includes subject matter (such as a receiver device of an authentication system) or can optionally be combined with one or any combination of Example 1-15 to include such subject matter, comprising physical layer circuitry and processing circuitry operatively coupled to the physical layer circuitry. The processing circuitry is configured to decode an authentication command received from a verifier device, encode a response for sending to the verifier device, wherein the response includes a first random number, decrypt encrypted information received from the verifier device, wherein the encrypted information includes the first random number, a second random number, and verifier device keying material, encrypt the first random number, the second random number and receiver device keying material for sending to the verifier device, and calculate a session encryption key using the verifier device keying material and the receiver device keying material.

In Example 17, the subject matter of Example 16 optionally includes processing circuitry configured to calculate the receiver device keying material using a static key and the second random number.

In Example 18, the subject matter of one or both of Examples 16 and 17 optionally includes processing circuitry configured to calculate the session key using a static key, the verifier device key material, and the receiver device keying material.

In Example 19, the subject matter of one or any combination of Examples 16-18 optionally includes processing circuitry configured to calculate the first random number by applying a counter value to a pseudo random number function.

In Example 20, the subject matter of one or any combination of Example 19 optionally includes processing circuitry configured to change the counter value used to calculate the random number for each communication session with the verifier device.

These several Examples can be combined in any permutation or combination. The above detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show, by way of illustration, specific embodiments in which the invention can be practiced. The above description is intended to be illustrative, and not restrictive. For example, the above-described examples (or one or more aspects thereof) may be used in combination with each other. Other embodiments can be used, such as by one of ordinary skill in the art upon reviewing the above description. The Abstract is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In the above Detailed Description, various features may be grouped together to streamline the disclosure. This should not be interpreted as intending that an unclaimed disclosed feature is essential to any claim. Rather, the subject matter may lie in less than all features of a particular disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment, and it is contemplated that such embodiments can be combined with each other in various combinations or permutations. The scope should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. 

What is claimed is:
 1. A method of device authentication, the method comprising: sending an authentication command from an authenticating initiator device to a receiver device to be authenticated; transmitting a first random number from the receiver device to the authenticating initiator device in response to the authentication command, wherein the first random number is determined using a counter value and updating the counter value for each communication session between the authenticating initiator device and the receiver device; determining, by the receiver device, first key information using a static encryption key specific to the receiver device and the first random number transmitted by the receiver device in response to the authentication command; in response to receiving communication that includes the first random number, determining by the authenticating initiator device, the first key information using the first random number, a second random number and second key information specific to the authenticating initiator device; transmitting the first random number, the second random number, and the second key information from the authenticating initiator device to the receiver device; transmitting the first random number, the second random number, and the first key information from the receiver device to the authenticating initiator device according to a script included in the receiver device, wherein the first key information includes a third random number predictable by the authenticating initiator device; and encrypting information communicated between the authenticating initiator device and the receiver device using an encryption key determined using the static encryption key, the first key information and the second key information.
 2. The method of claim 1, wherein the first random number is a pseudo random number is bound to a specific context of communication between the authenticating initiator device and the receiver device.
 3. The method of claim 1, wherein updating the counter value after the first random number is communicated between the receiver device and the authenticating initiator device.
 4. The method of claim 1, wherein the static encryption key is stored in each of the authenticating initiator device and the receiver device.
 5. The method of claim 1, wherein the authenticating initiator device is a verifier device and the receiver device is a credential device.
 6. The method of claim 5, wherein the receiver device is a smartphone and the authenticating initiator device is a server or an access control device.
 7. The method of claim 5, wherein the receiver device is a smart card and the authenticating initiator device is a server or an access control device.
 8. A verifier device of an authentication system, the verifier device comprising: physical layer circuitry; and processing circuitry operatively coupled to the physical layer circuitry and configured to: encode an authentication command for sending to a credential device to authenticate the credential device; decode a response communication received from the credential device in response to the authentication command, wherein the response communication includes a first random number determined the credential device using a counter value and updating the counter value for each communication session between the verifier device and the credential device; in response to decoding the response communication that includes the first random number, determining the receiver device keying material using the first random number, a second random number and verifier device keying material specific to the verifier device; encrypt the first random number, the second random number, and the verifier device keying material for sending to the credential device; decrypt encrypted information received from the credential device, wherein the encrypted information includes the first random number, the second random number, and the receiver device keying material according to a script included in the verifier device, wherein the receiver device keying material is produced using a static encryption key specific to the credential device and the first random number and includes a third random number predictable by the verifier device; and calculate a session encryption key using the static encryption key, the verifier device keying material and the receiver device keying material.
 9. The verifier device of claim 8, wherein the processing circuitry is configured to calculate the first random number by applying the counter value to a pseudo random number function.
 10. The verifier device of claim 9, wherein the processing circuitry is configured to update the counter value used to calculate the first random number after an exchange of information with the credential device.
 11. A receiver device of an authentication system, the receiver device comprising: physical layer circuitry; and processing circuitry operatively coupled to the physical layer circuitry and configured to: decode an authentication command received from a verifier device for authenticating the receiver device; encode a response for sending to the verifier device in response to the authentication command, wherein the response includes a first random number determined by the receiver device in response to the authentication command using a counter value and by updating the counter value for each communication session between the verifier device and the receiver device; determine receiver device keying material using a static encryption key specific to the receiver device and the first random number; decrypt encrypted information received from the verifier device, wherein the encrypted information includes the first random number, the second random number, and verifier device keying material specific to the verifier device; encrypt the first random number, the second random number and the receiver device keying material for sending to the verifier device according to a script included in the receiver device, wherein the receiver device keying material includes a third random number predictable by the verifier device using the first random number, the second random number and the verifier device keying material specific to the verifier device; and calculate a session encryption key using the static encryption key, the verifier device keying material and the receiver device keying material.
 12. The receiver device of claim 11, wherein the processing circuitry is configured to calculate the first random number by applying the counter value to a pseudo random number function. 